Many computer systems include one or more local buses, or expansion buses, to couple system elements together and enable the transfer of data between the system elements. An example of such an expansion bus is the popular Peripheral Component Interconnect (PCI) bus. It is a 32- or 64-bit bus with multiplexed address, data and control lines. The specification for the PCI bus is set forth in the document PCI Local Bus Specification, Production Version Revision 2.1, or newer. Among the many features which the PCI specification provides is the use of an “Expansion ROM”. The Expansion ROM is a non-volatile memory device residing on a PCI system or a PCI add-in, expansion board. At a minimum, the Expansion ROM must contain initialization code that will be called by the power-on self-test to initialize the PCI system to a known state. In addition, if the PCI system will be used during the boot process, the boot code must be implemented in the Expansion ROM.
The typical way in which the Expansion ROM is used is defined in the PCI Local Bus Specification, so it will not be further described herein. In the example of an Ethernet add-in board (Network Interface Card, NIC) supporting remote booting services, diskless computers or workstations equipped with the Ethernet NIC are enabled to boot from any servers on the Ethernet network. An Expansion ROM on the add-in board must be implemented to work with a PCI device for Ethernet control, which allows booting of the diskless workstations. Instead of loading the operating system from a local hard drive or floppy disk, the boot routine in the Expansion ROM issues a request over the network to have a server send a copy of the operating system. As the boot routine receives the operating system code, it loads the operating system into the local workstation's main memory and passes control to the operating system when complete. The Expansion ROM on the NIC, such as a flash memory containing the initialization code and the boot routine, is often referred to as a “BootROM”.
Conventional PCI devices are provided with a separate memory interface to connect memory devices as shown in FIG. 1. The PCI device 11 includes a PCI bus interface 113 for connecting to the PCI bus 15. In addition, a memory interface 111 couples the PCI device 11 to the Expansion ROM 13. If the Expansion ROM 13 is an 8-bit flash memory of 128 kilobytes, the minimum number of signals in the memory interface 111 is 28 in which the memory interface 111 must include 8 data signals, 17 address signals, and 3 control signals: write enable, output enable and chip enable. The PCI device 11 is an Ethernet control chip for example, and it will require some pins for the PCI interface, some pins for the network interface, and 28 more pins for the memory interface. The more pins included in an integrated circuit chip, the greater its package size. However, the cost of an IC chip goes up as the package size is increased.
Therefore, what is needed is a solution for lowering the cost of the IC chip by reducing the number of required pins.